
// 导入数据库模块
const db = require('../db/index')
// 导入 bcryptjs 这个包
const bcrypt = require('bcryptjs')

// 获取所有用户信息的路由模块
exports.getUser = (req,res) => {
    // 定义查询用户信息的sql语句
    const sql = 'select * from ev_users'
    db.query(sql,(err,results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取用户列表成功',
            data: results,
        })
    })
}
// 获取用户信息的路由模块
exports.getUserInfo = (req,res) => {
    // 定义查询用户信息的sql语句
    const sql = 'select id, username, email ,user_pic ,status from ev_users where id=?'
    db.query(sql,req.user.id,(err,results) => {
        if(err) return res.cc(err)
        if(results.length !== 1) return res.cc('获取用户信息失败！')

        res.send({
            status:0,
            message:'获取用户信息',
            data:results[0]

        })
    })
}
// 更新用户信息
exports.updateUserInfo=(req,res) => {
    const sql = 'update ev_users set ? where id=?'
    db.query(sql,[req.body,req.body.id],(err,results) => {
        if(err) return res.cc(err)
        if(results.length !== 1) return res.cc('更新用户的基本信息失败！')
        res.cc('更新用户信息成功！',0)
    })
}
// 更新用户密码的路由
exports.updadePassword=(req,res) => {
    const sql = 'select * from ev_users where id=?'
    db.query(sql,req.user.id,(err,results) => {
        if(err) return res.cc(err)
        if(results.length == 0) return res.cc('用户不存在',2)
        
        // 判断旧密码是否正确
        const compareRusult = bcrypt.compareSync(req.body.oldPwd,results[0].password)
        if(!compareRusult) return res.cc('旧密码错误！',2)

        // 更新密码
        const sql = 'update ev_users set password=? where id=?'
       const newPwd = bcrypt.hashSync(req.body.newPwd,10)
        db.query(sql,[newPwd,req.user.id],(err,results) => {
            if(err) return res.cc(err)
            if(results.affectedRows !== 1) return res.cc('更新密码失败！')
            res.cc('更新成功',0)
        })

    })
}

// 更新用户头像的处理函数
exports.updateAvatar = (req,res) => {
    // 定义更新头像的sql语句
    const sql = "update ev_users set user_pic=? where id=?"
    db.query(sql,[req.body.avatar,req.user.id],(err,results) => {
        if(err) return res.cc(err)
        if(results.affectedRows != 1) return res.cc('更换头像失败')
        return res.cc('更换用户头像成功',0)
    })
}